 package com.bmps.springcloud.insuredmicroservice.model.accept.resquest;

 import com.alibaba.fastjson.annotation.JSONField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.hibernate.validator.constraints.Length;

 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;

 /**
  *  @author lyw
  *  @date 2019/07/24
  */
 public class PolicyInfoModel implements Serializable {

     @NotBlank(message="contNo字段不能为空!")
	 private String contNo;

     @NotBlank(message="prtNo字段不能为空!")
     @Length(max = 16,min = 16,message = "prtNo字段必须16位!")
	 private String prtNo;

	 @JSONField(format = "yyyy-MM-dd")
     @NotNull(message="polApplyDate字段不能为空!")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
	 private Date polApplyDate;

	 @JSONField(format = "yyyy-MM-dd")
     @NotNull(message="cvalidate字段不能为空!")
     @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
	 private Date cvalidate;

     @NotBlank(message="manageCom字段不能为空!")
	 private String manageCom;

     @NotBlank(message="saleChnl字段不能为空!")
	 private String saleChnl;

     @NotBlank(message="saleChnlChild字段不能为空!")
	 private String saleChnlChild;

     @NotBlank(message="agencyCode字段不能为空!")
	 private String agencyCode;

     @NotBlank(message="orderNo字段不能为空!")
	 private String orderNo;

	 private String paperNo;

	 private String teller;

	 private String tellerName;

	 private String salesCode;

	 private String servAgentCode;

	 private BigDecimal servAgentRatio;

	 private String servAgentSign;

	 private String acceAgentCode;

	 private BigDecimal acceAgentRatio;

	 private String acceAgentSign;

	 private String finaPlannerName;

	 private String finaPlannerCode;

	 private String customerCode;

	 private String finaManagerName;

	 private String finaManagerCode;

	 private String isReadItem;

	 private String isExplain;

	 private String endPoint;

	 private String privateBank;

	 private String isEmpower;

	 private String empowerType;

	 private String letterPostFlag;

	 @JSONField(format = "yyyy-MM-dd")
	 private Date proLockStartDate;

	 @JSONField(format = "yyyy-MM-dd")
	 private Date proLockEndDate;

	 private Integer proLockEndDays;

	 private String deliverAddress;

	 @JSONField(format = "yyyy-MM-dd")
	 private Date deliverDate;

	 private String adName;

	 private BigDecimal offRate;

	 private String familyType;

	 private String finanMngCode;

	 private String finanBnkCode;
     /**
      * 调用保盾云的次数
      */
     private String cloudPlatNumber;

     public String getContNo() {
         return contNo;
     }

     public void setContNo(String contNo) {
         this.contNo = contNo;
     }

     public String getPrtNo() {
         return prtNo;
     }

     public void setPrtNo(String prtNo) {
         this.prtNo = prtNo;
     }

     public Date getPolApplyDate() {
         return polApplyDate;
     }

     public void setPolApplyDate(Date polApplyDate) {
         this.polApplyDate = polApplyDate;
     }

     public Date getCvalidate() {
         return cvalidate;
     }

     public void setCvalidate(Date cvalidate) {
         this.cvalidate = cvalidate;
     }

     public String getManageCom() {
         return manageCom;
     }

     public void setManageCom(String manageCom) {
         this.manageCom = manageCom;
     }

     public String getSaleChnl() {
         return saleChnl;
     }

     public void setSaleChnl(String saleChnl) {
         this.saleChnl = saleChnl;
     }

     public String getSaleChnlChild() {
         return saleChnlChild;
     }

     public void setSaleChnlChild(String saleChnlChild) {
         this.saleChnlChild = saleChnlChild;
     }

     public String getAgencyCode() {
         return agencyCode;
     }

     public void setAgencyCode(String agencyCode) {
         this.agencyCode = agencyCode;
     }

     public String getOrderNo() {
         return orderNo;
     }

     public void setOrderNo(String orderNo) {
         this.orderNo = orderNo;
     }

     public String getPaperNo() {
         return paperNo;
     }

     public void setPaperNo(String paperNo) {
         this.paperNo = paperNo;
     }

     public String getTeller() {
         return teller;
     }

     public void setTeller(String teller) {
         this.teller = teller;
     }

     public String getTellerName() {
         return tellerName;
     }

     public void setTellerName(String tellerName) {
         this.tellerName = tellerName;
     }

     public String getSalesCode() {
         return salesCode;
     }

     public void setSalesCode(String salesCode) {
         this.salesCode = salesCode;
     }

     public String getServAgentCode() {
         return servAgentCode;
     }

     public void setServAgentCode(String servAgentCode) {
         this.servAgentCode = servAgentCode;
     }

     public BigDecimal getServAgentRatio() {
         return servAgentRatio;
     }

     public void setServAgentRatio(BigDecimal servAgentRatio) {
         this.servAgentRatio = servAgentRatio;
     }

     public String getServAgentSign() {
         return servAgentSign;
     }

     public void setServAgentSign(String servAgentSign) {
         this.servAgentSign = servAgentSign;
     }

     public String getAcceAgentCode() {
         return acceAgentCode;
     }

     public void setAcceAgentCode(String acceAgentCode) {
         this.acceAgentCode = acceAgentCode;
     }

     public BigDecimal getAcceAgentRatio() {
         return acceAgentRatio;
     }

     public void setAcceAgentRatio(BigDecimal acceAgentRatio) {
         this.acceAgentRatio = acceAgentRatio;
     }

     public String getAcceAgentSign() {
         return acceAgentSign;
     }

     public void setAcceAgentSign(String acceAgentSign) {
         this.acceAgentSign = acceAgentSign;
     }

     public String getFinaPlannerName() {
         return finaPlannerName;
     }

     public void setFinaPlannerName(String finaPlannerName) {
         this.finaPlannerName = finaPlannerName;
     }

     public String getFinaPlannerCode() {
         return finaPlannerCode;
     }

     public void setFinaPlannerCode(String finaPlannerCode) {
         this.finaPlannerCode = finaPlannerCode;
     }

     public String getCustomerCode() {
         return customerCode;
     }

     public void setCustomerCode(String customerCode) {
         this.customerCode = customerCode;
     }

     public String getFinaManagerName() {
         return finaManagerName;
     }

     public void setFinaManagerName(String finaManagerName) {
         this.finaManagerName = finaManagerName;
     }

     public String getFinaManagerCode() {
         return finaManagerCode;
     }

     public void setFinaManagerCode(String finaManagerCode) {
         this.finaManagerCode = finaManagerCode;
     }

     public String getReadItem() {
         return isReadItem;
     }

     public void setReadItem(String readItem) {
         isReadItem = readItem;
     }

     public String getExplain() {
         return isExplain;
     }

     public void setExplain(String explain) {
         isExplain = explain;
     }

     public String getEndPoint() {
         return endPoint;
     }

     public void setEndPoint(String endPoint) {
         this.endPoint = endPoint;
     }

     public String getPrivateBank() {
         return privateBank;
     }

     public void setPrivateBank(String privateBank) {
         this.privateBank = privateBank;
     }

     public String getIsEmpower() {
         return isEmpower;
     }

     public void setIsEmpower(String isEmpower) {
         this.isEmpower = isEmpower;
     }

     public String getEmpowerType() {
         return empowerType;
     }

     public void setEmpowerType(String empowerType) {
         this.empowerType = empowerType;
     }

     public String getLetterPostFlag() {
         return letterPostFlag;
     }

     public void setLetterPostFlag(String letterPostFlag) {
         this.letterPostFlag = letterPostFlag;
     }

     public Date getProLockStartDate() {
         return proLockStartDate;
     }

     public void setProLockStartDate(Date proLockStartDate) {
         this.proLockStartDate = proLockStartDate;
     }

     public Date getProLockEndDate() {
         return proLockEndDate;
     }

     public void setProLockEndDate(Date proLockEndDate) {
         this.proLockEndDate = proLockEndDate;
     }

     public Integer getProLockEndDays() {
         return proLockEndDays;
     }

     public void setProLockEndDays(Integer proLockEndDays) {
         this.proLockEndDays = proLockEndDays;
     }

     public String getDeliverAddress() {
         return deliverAddress;
     }

     public void setDeliverAddress(String deliverAddress) {
         this.deliverAddress = deliverAddress;
     }

     public Date getDeliverDate() {
         return deliverDate;
     }

     public void setDeliverDate(Date deliverDate) {
         this.deliverDate = deliverDate;
     }

     public String getAdName() {
         return adName;
     }

     public void setAdName(String adName) {
         this.adName = adName;
     }

     public BigDecimal getOffRate() {
         return offRate;
     }

     public void setOffRate(BigDecimal offRate) {
         this.offRate = offRate;
     }

     public String getFamilyType() {
         return familyType;
     }

     public void setFamilyType(String familyType) {
         this.familyType = familyType;
     }

     public String getFinanMngCode() {
         return finanMngCode;
     }

     public void setFinanMngCode(String finanMngCode) {
         this.finanMngCode = finanMngCode;
     }

     public String getFinanBnkCode() {
         return finanBnkCode;
     }

     public void setFinanBnkCode(String finanBnkCode) {
         this.finanBnkCode = finanBnkCode;
     }

     public String getCloudPlatNumber() {
         return cloudPlatNumber;
     }

     public void setCloudPlatNumber(String cloudPlatNumber) {
         this.cloudPlatNumber = cloudPlatNumber;
     }

     @Override
     public boolean equals(Object o) {
         if (this == o){
             return true;
         }

         if (o == null || getClass() != o.getClass()) {
             return false;
         }

         PolicyInfoModel that = (PolicyInfoModel) o;

         return new EqualsBuilder()
                 .append(contNo, that.contNo)
                 .append(prtNo, that.prtNo)
                 .append(polApplyDate, that.polApplyDate)
                 .append(cvalidate, that.cvalidate)
                 .append(manageCom, that.manageCom)
                 .append(saleChnl, that.saleChnl)
                 .append(saleChnlChild, that.saleChnlChild)
                 .append(agencyCode, that.agencyCode)
                 .append(orderNo, that.orderNo)
                 .append(paperNo, that.paperNo)
                 .append(teller, that.teller)
                 .append(tellerName, that.tellerName)
                 .append(salesCode, that.salesCode)
                 .append(servAgentCode, that.servAgentCode)
                 .append(servAgentRatio, that.servAgentRatio)
                 .append(servAgentSign, that.servAgentSign)
                 .append(acceAgentCode, that.acceAgentCode)
                 .append(acceAgentRatio, that.acceAgentRatio)
                 .append(acceAgentSign, that.acceAgentSign)
                 .append(finaPlannerName, that.finaPlannerName)
                 .append(finaPlannerCode, that.finaPlannerCode)
                 .append(customerCode, that.customerCode)
                 .append(finaManagerName, that.finaManagerName)
                 .append(finaManagerCode, that.finaManagerCode)
                 .append(isReadItem, that.isReadItem)
                 .append(isExplain, that.isExplain)
                 .append(endPoint, that.endPoint)
                 .append(privateBank, that.privateBank)
                 .append(isEmpower, that.isEmpower)
                 .append(empowerType, that.empowerType)
                 .append(letterPostFlag, that.letterPostFlag)
                 .append(proLockStartDate, that.proLockStartDate)
                 .append(proLockEndDate, that.proLockEndDate)
                 .append(proLockEndDays, that.proLockEndDays)
                 .append(deliverAddress, that.deliverAddress)
                 .append(deliverDate, that.deliverDate)
                 .append(adName, that.adName)
                 .append(offRate, that.offRate)
                 .append(familyType, that.familyType)
                 .append(finanMngCode, that.finanMngCode)
                 .append(finanBnkCode, that.finanBnkCode)
                 .append(cloudPlatNumber, that.cloudPlatNumber)
                 .isEquals();
     }

     @Override
     public int hashCode() {
         return new HashCodeBuilder(17, 37)
                 .append(contNo)
                 .append(prtNo)
                 .append(polApplyDate)
                 .append(cvalidate)
                 .append(manageCom)
                 .append(saleChnl)
                 .append(saleChnlChild)
                 .append(agencyCode)
                 .append(orderNo)
                 .append(paperNo)
                 .append(teller)
                 .append(tellerName)
                 .append(salesCode)
                 .append(servAgentCode)
                 .append(servAgentRatio)
                 .append(servAgentSign)
                 .append(acceAgentCode)
                 .append(acceAgentRatio)
                 .append(acceAgentSign)
                 .append(finaPlannerName)
                 .append(finaPlannerCode)
                 .append(customerCode)
                 .append(finaManagerName)
                 .append(finaManagerCode)
                 .append(isReadItem)
                 .append(isExplain)
                 .append(endPoint)
                 .append(privateBank)
                 .append(isEmpower)
                 .append(empowerType)
                 .append(letterPostFlag)
                 .append(proLockStartDate)
                 .append(proLockEndDate)
                 .append(proLockEndDays)
                 .append(deliverAddress)
                 .append(deliverDate)
                 .append(adName)
                 .append(offRate)
                 .append(familyType)
                 .append(finanMngCode)
                 .append(finanBnkCode)
                 .append(cloudPlatNumber)
                 .toHashCode();
     }

     @Override
     public String toString() {
         return "PolicyInfoModel{" +
                 "contNo='" + contNo + '\'' +
                 ", prtNo='" + prtNo + '\'' +
                 ", polApplyDate=" + polApplyDate +
                 ", cvalidate=" + cvalidate +
                 ", manageCom='" + manageCom + '\'' +
                 ", saleChnl='" + saleChnl + '\'' +
                 ", saleChnlChild='" + saleChnlChild + '\'' +
                 ", agencyCode='" + agencyCode + '\'' +
                 ", orderNo='" + orderNo + '\'' +
                 ", paperNo='" + paperNo + '\'' +
                 ", teller='" + teller + '\'' +
                 ", tellerName='" + tellerName + '\'' +
                 ", salesCode='" + salesCode + '\'' +
                 ", servAgentCode='" + servAgentCode + '\'' +
                 ", servAgentRatio=" + servAgentRatio +
                 ", servAgentSign='" + servAgentSign + '\'' +
                 ", acceAgentCode='" + acceAgentCode + '\'' +
                 ", acceAgentRatio=" + acceAgentRatio +
                 ", acceAgentSign='" + acceAgentSign + '\'' +
                 ", finaPlannerName='" + finaPlannerName + '\'' +
                 ", finaPlannerCode='" + finaPlannerCode + '\'' +
                 ", customerCode='" + customerCode + '\'' +
                 ", finaManagerName='" + finaManagerName + '\'' +
                 ", finaManagerCode='" + finaManagerCode + '\'' +
                 ", isReadItem=" + isReadItem +
                 ", isExplain=" + isExplain +
                 ", endPoint='" + endPoint + '\'' +
                 ", privateBank=" + privateBank +
                 ", isEmpower='" + isEmpower + '\'' +
                 ", empowerType='" + empowerType + '\'' +
                 ", letterPostFlag='" + letterPostFlag + '\'' +
                 ", proLockStartDate=" + proLockStartDate +
                 ", proLockEndDate=" + proLockEndDate +
                 ", proLockEndDays=" + proLockEndDays +
                 ", deliverAddress='" + deliverAddress + '\'' +
                 ", deliverDate=" + deliverDate +
                 ", adName='" + adName + '\'' +
                 ", offRate=" + offRate +
                 ", familyType='" + familyType + '\'' +
                 ", finanMngCode='" + finanMngCode + '\'' +
                 ", finanBnkCode='" + finanBnkCode + '\'' +
                 ", cloudPlatNumber='" + cloudPlatNumber + '\'' +
                 '}';
     }
 }
